Using limit variables in a computer system

ABSTRACT

An expression entered by a user to set a limit variable for a numerical range may be received in a computer system. The expression signifies to the user that the numerical range is unlimited. The limit variable can only be set with a numerical value. The limit variable is set with a first numerical value that is within a predetermined extreme portion of the numerical range. A command to display a limit variable for a numerical range may be received in a computer system. The limit variable is set with a numerical value. If the numerical value is within a predetermined extreme portion of the numerical range, an expression is displayed to a user that signifies to the user that the numerical range is unlimited. If the numerical value is not within the predetermined extreme portion of the numerical range, the numerical value is displayed to the user.

TECHNICAL FIELD

This description relates to using limit variables in a computer system.

BACKGROUND

Some records in computer systems are associated with validity periods.For example, an organization may use validity periods with residenceaddresses of its employees that are stored in a computer database. Whenan employee moves, the employee's current address is updated with an“end date” to signify that it is no longer a current address and theemployee's new address is entered with a corresponding “begin date”. Inother words, the system may have a data model specifying that everyaddress record should have begin and end dates associated with it.

This data model causes a problem when the employee's new address isbeing entered, because its end date is typically not known at that time.Yet the data model may require an end date to be entered for the recordto be acceptable. One approach that is used to overcome this problem isto enter an “extreme” value as the end date for the new address record.For example, when the data model lets year values be entered with fourdigits, values like 9999-12-31 are sometimes entered as the end date fora validity period. That is, the extreme value is not a “true” end datebut is used to signify that the validity period has an indefinite range.Such end dates typically do not cause any problems within the computersystem because they are virtually certain to be obsolete or replacedwith an actual end date long before they become valid.

The use of extreme values can be problematic, however, outside thecomputer system. Some users find it inconvenient or distracting to seevalidity periods ending several thousand years in the future. Thesevalues may also increase the risk for mistakes, for example because auser can mistake the extreme date 9999-12-31 for 99-12-31. The extremedates are also hard to distinguish from contemporary dates in a list,and it can therefore be difficult to quickly separate valid records(which have extreme values as their end dates) from invalid records(whose end dates have already occurred). Moreover, because extreme datesare used to signify that the validity range is unlimited, there islittle benefit in making the user read and absorb the entire, say, tendigits of such an expression. Extreme values may be used with numericalranges other than validity periods, and the disadvantages areessentially the same.

SUMMARY

The invention relates to using limit variables in a computer system. Ina first general aspect, a method comprises receiving an expressionentered by a user to set a limit variable for a numerical range in acomputer system. The expression signifies to the user that the numericalrange is unlimited. The limit variable can only be set with a numericalvalue. The method comprises setting the limit variable with a firstnumerical value that is within a predetermined extreme portion of thenumerical range.

In selected embodiments, the numerical range is a date range, the limitvariable an end date for the date range and the first numerical value afirst date. In such embodiments, the predetermined extreme portion maybe selected such that, practically, a system date of the computer systemwill never reach the predetermined extreme portion of the date range.

In a second general aspect, a method of using a limit variable in acomputer system comprises receiving a command to display a limitvariable for a numerical range. The limit variable is stored in acomputer system and is set with a numerical value. If the numericalvalue is within a predetermined extreme portion of the numerical range,the method comprises displaying an expression to a user that signifiesto the user that the numerical range is unlimited. If the numericalvalue is not within the predetermined extreme portion of the numericalrange, the method comprises displaying the numerical value to the user.

In selected embodiments, the numerical range is a date range, the limitvariable an end date for the date range and the first numerical value afirst date. In such embodiments, the predetermined extreme portion maybe selected such that, practically, a system date of the computer systemwill never reach the predetermined extreme portion of the date range.

Advantages of the systems and techniques described herein may includeany or all of the following. Providing a user interface that is moreuser friendly. Providing more efficient use of limit variables. Reducingthe risk of user mistakes regarding limit variables. Providing Usefulcustomization of a computer system. Avoiding the display ofintentionally set extreme values to a user. Providing that a data recordcan be provided with a practically unlimited validity range when itsdata model requires specific begin and end dates to be set for thevalidity range.

The details of one or more embodiments of the invention are set forth inthe accompanying drawings and the description below. Other features,objects, and advantages of the invention will be apparent from thedescription and drawings, and from the claims.

BRIEF DESCRIPTION OF THE DRAWINGS

FIGS. 1A and B are block diagrams of a computer system performing aninput operation regarding a limit variable;

FIGS. 2A and B are block diagrams of a computer system performing anoutput operation regarding a limit variable;

FIG. 3 is a conceptual block diagram of a computer system capable ofinputting and outputting values for limit variables;

FIGS. 4 and 5 are flow charts of methods of using limit variables; and

FIG. 6 is a block diagram of a computer system.

Like reference numerals in the various drawings indicate like elements.

DETAILED DESCRIPTION

FIGS. 1A and 1B show a computer system 100 having a user interface 110with which a user can interact and a processing component 120 in whichat least one software application is being executed. At the stage shownin FIG. 1A, the system 100 is prompting the user to enter a begin dateand an end date for a validity range associated with some record in thesystem. In this example, the user knows that the record has a begin datebut not a specific end date. The user enters “5/15/1991” in a field 130,which is an input and output field associated with a begin date. Forreasons that will be described below, the user also enters the word“UNLIMITED” in a field 140 to signify that the validity range isunlimited. The field 140 is an input and output field associated with anend date. The system 100 is configured to store begin and end dates in amemory 150. That is, the system 100 stores a limit variable that is tobe set with the begin date value, and stores another limit variable thatis to be set with the end date value. Accordingly, the limit variablesare set with their respective values stored in memory 150. The storedvalues can be used to produce output in the fields 130 and 140, as willbe described.

The system converts the inputs made in fields 130 and 140 before settingthe respective limit variables. The input in field 130 is converted to“19910515”, which is an internal representation that the system 100 usesfor the date 5/15/1991, and stores this value in memory 150 as shown inFIG. 1B. As will be described below, the system recognizes the word“UNLIMITED” and converts it to “99991231”, which corresponds to the date12/31/9999, and stores this value in memory 150.

FIGS. 2A and 2B show the system 100 with the two values described abovestored in memory 150. The user interface 110 does not presently have anyinformation contained in the fields 130 and 140. For example, the system100 has been rebooted after the user made the above described inputs. InFIG. 2A, the system receives a command to output the begin and end datesthat are stored in memory 150. The system responds to the command bydetermining what, if any, conversion(s) of the stored values should bedone before displaying them in the user interface. The system convertsthe begin date “19910515” to the format “5/15 /1991” and displays it infield 130 as shown in FIG. 2B. As will be described below, the systemrecognizes that the end date “99991231” is an extreme date and sodisplays the word “UNLIMITED” in the field 140. For example, the systemmay be preprogrammed to recognize that any date later than a certaindate (e.g., the year 5000) will be recognized as an extreme date.

The examples described with reference to FIGS. 1A, 1B, 2A and 2B showthat a user enters an expression that signifies to the user that a rangeis unlimited and that a system converts such an expression to a value.Thereafter, the system can convert the value to the expression fordisplay to the user. Thus, the system lets the user work with ameaningful expression and not be distracted with the specific end datewith which the system sets the limit variable.

A specific exemplary system that can input and output values for limitvariables will now be described with reference to FIG. 3. System 300includes at least one application 310. A user can interact with thesystem 300 using a user interface 320. That is, the user interface 320can be displayed on a display device 330 for the user to receive outputfrom the system 300. The user interface 320 lets the user inputinformation to the system 300 using input device(s) 340.

The application 310 includes at least one numerical range 342 that islimited by an upper limit variable 344 and a lower limit variable 346.For example, the numerical range 342 is a validity range for a recordused by the application 310. As another example, the numerical range 342relates to acceptable values of a processing parameter in amanufacturing plant. The variables 344 and 346 can be set by the userthrough suitable inputs using the user interface 320.

Suppose now, similarly to the situation in FIG. 1A, that the system 300prompts the user to input values for the variables 344 and 346. In thisexample, the user intends to set the lower limit variable 346 to aspecific value but wishes to leave the upper limit variable 344unspecified or undetermined. The user therefore inputs a certain valuefor the lower limit variable 346, using an input field similar to thefield 130. For the upper limit variable 344, the user enters anexpression that signifies to the user that the numerical range 342 isunlimited. The expression may be entered in a field similar to the field140. By executing instruction contained in a kernel 350, the system 300recognizes that the value and the expression have been input in theirrespective fields. The kernel 350 is configured to cause the system 300to determine which of conversion routines 360 should be applied to theinputs, as will now be described.

The system 300 has a data model 370 that includes a plurality of datatypes 372 to which each variable used in the system can be assigned. Anyspecific data type 372 contains various information about the variablethat the system 300 uses in its operations, including an assignment ofthe variable to a specific one of the conversion routines 360. In thisexample, the data types 372 include data elements 374 assigned torespective domains 376. Any specific data element 374 is a collection ofsemantic information about the variable, such as labels, descriptionsand associations with other variables. Any specific domain 376 containstechnical information about the data element, such as its field lengthand field type. Accordingly, each variable in the system 300 is assignedto one of the data elements 374 which is assigned to one of the domains376, and together the data elements 374 and the domains 376 form aparticular one of the data types 372. This example will be furtherillustrated with reference also to the following table of exemplaryvariables and data type assignments:

TABLE 1 Standard Conversion Variable Data element Domain Routine SpecialConversion Routine ADDR_BEGIN ADDR_BEGIN_DATE BEGIN_DATE DATE_CONVADDR_END ADDR_END_DATE END_DATE DATE_CONV DATE_CONV_UNLIMITEDCONTRACT_BEGIN CONTRACT_BEGIN_DATE BEGIN_DATE DATE_CONV CONTRACT_ENDCONTRACT_END_DATE END_DATE DATE_CONV DATE_CONV_UNLIMITED

Suppose that the lower limit variable 346 is the ADDR_BEGIN variablelisted in the Variable column on the first row of Table 1, and that theupper limit variable 344 is the ADDR_END variable listed on the secondrow of the Variable column. Thus, when the inputs for these respectivevariables are received, the system 300 knows according to the secondcolumn of Table 1 that the former variable is assigned to theADDR_BEGIN_DATE data element and that the latter variable is assigned tothe ADDR_END_DATE data element. According to the third column of Table1, the ADDR_BEGIN_DATE data element is assigned to the BEGIN_DATE domainand the ADDR_END_DATE data element is assigned to the END_DATE domain.

The system 300 applies the conversion routine listed in the “StandardConversion Routine” column of Table 1 unless there is a conversionroutine listed in the “Special Conversion Routine” column, which takesprecedence. Thus, for the lower limit variable 346 the system will applythe DATE_CONV conversion routine and for the upper limit variable 344the system will apply the DATE_CONV_UNLIMITED conversion routine. InFIG. 3, the DATE_CONV conversion routine is shown as conversion routine360A, and the DATE_CONV_UNLIMITED conversion routine is shown asconversion routine 360B.

The conversion routine 360A is a default that is listed in the fourthcolumn of Table 1 for each of the four date variables. This routineconverts the input information to a date format that the system uses.For example, the routine 360A converts the input “5/15/1991” to theformat “19910515” and provides that the lower limit variable 346 is setwith this value.

The conversion routine 360B, in contrast, is capable of converting anexpression to a value and vice versa. That is, when the system appliesthis routine, it is determined whether the expression entered by theuser for the upper limit variable 344 is one of the expressions 380 thatthe system recognizes when executing the conversion routine 360B. Forexample, expressions 380 include the following words: unlimited,unrestricted, current, present, eternal, infinite, endless, forever, andvariations thereof. The expressions 380 may include a phrase such as “noend date” or “there is no limit”. The expressions 380 may include asymbol such as ∞, the mathematical symbol for infinity. The above aremerely examples of expressions 380. Other expressions that signify tothe user that the numerical range is unlimited may be used.

If the expression entered by the user is one of the expressions 380, theconversion routine 360B causes it to be converted to a value for theupper limit variable 344 that is within a predetermined extreme portion(PEP) 390 of the numerical range 342. The PEP 390 may be selected sothat the upper limit variable 344 for practical purposes will never bemet. For example, with date variables the PEP 390 can be set to start athousand or more years into the future and may end on the last date thatcan be represented in the system 300. This guarantees, for practicalpurposes, that a system date of the system 300 (i.e., the current datethat is used within the system), will never reach the PEP 390. Tofurther exemplify, the PEP 390 may be selected based on the highestvalue with which the particular limit variable can be set.

Here, the expression entered by the user is converted into the value“99991231”, which is the last date that can be represented with afour-digit year value. The routine 360B then provides that the upperlimit variable 344 is set with that value. If the expression entered bythe user is not one that the system 300 recognizes when executing theroutine 360B, the system may generate an error message or take someother default action.

The conversion routines 360 may be analogously used when the system 300outputs variable values to a user. Suppose, therefore, that theexecution of application 310 calls for outputting the values of itsvariables 344 and 346 to the user. Typically, the application 310generates a command directed to the kernel 350 that may be referred toas a “print” or “write” command. The command causes the system 300 todetermine which of the conversion routines 360 should be applied.Referring again to the above description of Table 1, the systemdetermines that the conversion routine 360A should be used for thevariable 346 and that the conversion routine 360B should be used for thevariable 344. The routine 360A converts the value “19910515” into aformat dedicated for display, such as “5/15/1991”, and provides it fordisplay to the user. For example, the output can be made in field 130 asshown in FIG. 2B. The routine 360B determines that the value of the,upper limit variable 344 is within the PEP 390 and converts it to one ofthe expressions 380 that signifies to the user that the numerical range342 is unlimited. Accordingly, the routine 360B may identify a variableas being a candidate for being converted into an expression based onwhether its value lies within the PEP 390, whether or not this value wasprovided by the routine 360B. This means that the routine 360B canconvert also variables whose values were manually set within the PEP390. This may be useful if the routine 360B is implemented in a systemwhere one or more variables are already set with extreme values, becausethe PEP 390 can be selected such that the routine recognizes theseexisting extreme values and provides a suitable expression for the userwhen they are output.

The routine 360B may convert the value to a predetermined one of theexpressions 380. In this example, the routine 360B converts the value“99991231” to the word “UNLIMITED”. The routine 360B may then providethe expression for display to the user, for example in field 140 asshown in FIG. 2B. If the routine 360B determines that the variable valueis not within the PEP 390, it may convert the value to a dedicateddisplay format, similar to the conversion done by routine 360A.

FIG. 3 shows the expression(s) 380 and PEP 390 separate from theconversion routines 360 in the exemplary system 300. In otherimplementations, they may be programmed into the appropriate routine(s)360. For example, the conversion routine 360B may include code that isconceptually equivalent to the following syntax:

If input=“unlimited”→provide that limit variable is set with “99991231”

and

If variable to be output is within PEP 390→provide “unlimited” fordisplay

The conversion routines 360 may be used with variables for otherentities than dates. For example, the routine 360A may provide anexternal representation wherein negative numbers are preceded by a minussign. That is, the routine 360A may convert a first bit of an internalvalue (which is set to one if the value is a negative number) into aminus sign that is displayed before the value in the externalrepresentation. Moreover, the conversion routine 360B can convert thevalue to an expression if the value is within the PEP 390 or else addthe minus sign like routine 360A. As another example, the routine 360Acan convert an internal time value “081045” to the external format“08:20:45”. Similarly, the routine 360B can convert the internal timevalue to an expression if it is within the PEP 390, or otherwise convertit to the external format.

As yet another example, the systems and techniques described herein maybe used also with a numerical range that is not defined by two limitvariables. For example, a data model may require only an end date (or abegin date) regarding the validity of a data record, in which case thenumerical range has only one limit variable. The single limit variablemay be an upper limit variable or a lower limit variable.

FIGS. 4 and 5 are flow charts of methods 400 and 500, respectively, ofusing limit variables. Method 400 may be executed by a system when auser is making an input for setting a limit variable. For example, acomputer program product can include instructions that cause a processorof the system 300 to execute the steps of method 400. Method 500 may beexecuted by a system when it is to display a limit variable to a user.For example, a computer program product can include instructions thatcause a processor of the system 300 to execute the steps of method 500.

As shown in FIG. 4, method 400 includes the following steps:

Receiving in step 410 an expression entered by a user to set a limitvariable (344, 346) for a numerical range 342, which expressionsignifies to the user that the numerical range 342 is unlimited.

Setting in step 420 the limit variable (344, 346) with a value that iswithin a predetermined extreme portion 390 of the numerical range 342.

As shown in FIG. 5, method 500 includes the following steps:

Receiving in step 510 a command to display a limit variable (344, 346)for a numerical range 342, the limit variable being set with a numericalvalue.

If the numerical value is within a predetermined extreme portion of thenumerical range, displaying in step 520 an expression to a user thatsignifies to the user that the numerical range is unlimited.

If the numerical value is not within the predetermined extreme portionof the numerical range, displaying in step 530 the value to the user.

FIG. 6 is a block diagram of a computer system 600 that can be used inthe operations described above, according to one embodiment. The system600 includes a processor 610, a memory 620, a storage device 630 and aninput/output device 640. Each of the components 610, 620, 630 and 640are interconnected using a system bus 650. The processor 610 is capableof processing instructions for execution within the system 600. In oneembodiment, the processor 610 is a single-threaded processor. In anotherembodiment, the processor 610 is a multi-threaded processor. Theprocessor 610 is capable of processing instructions stored in the memory620 or on the storage device 630 to display graphical information for auser interface on the input/output device 640.

The memory 620 stores information within the system 600. In oneembodiment, the memory 620 is a computer-readable medium. In oneembodiment, the memory 620 is a volatile memory unit. In anotherembodiment, the memory 620 is a non-volatile memory unit.

The storage device 630 is capable of providing mass storage for thesystem 600. In one embodiment, the storage device 630 is acomputer-readable medium. In various different embodiments, the storagedevice 630 may be a floppy disk device, a hard disk device, an opticaldisk device, or a tape device.

For example, the processing component 120 discussed with reference toFIGS. 1A, 1B, 2A and 2B above may include the processor 610 executing asoftware application that is stored in one of memory 620 and storagedevice 630.

The input/output device 640 provides input/output operations for thesystem 600. In one embodiment, the input/output device 640 includes akeyboard and/or pointing device. In one embodiment, the input/outputdevice 640 includes a display unit for displaying graphical userinterfaces as discussed above. For example, the user interface 110discussed with reference to FIGS. 1A, 1B, 2A and 2B above may bedisplayed on a display unit that is included in the input/output device640.

The invention can be implemented in digital electronic circuitry, or incomputer hardware, firmware, software, or in combinations of them.Apparatus of the invention can be implemented in a computer programproduct tangibly embodied in an information carrier, e.g., in amachine-readable storage device or in a propagated signal, for executionby a programmable processor; and method steps of the invention can beperformed by a programmable processor executing a program ofinstructions to perform functions of the invention by operating on inputdata and generating output. The invention can be implementedadvantageously in one or more computer programs that are executable on aprogrammable system including at least one programmable processorcoupled to receive data and instructions from, and to transmit data andinstructions to, a data storage system, at least one input device, andat least one output device. A computer program is a set of instructionsthat can be used, directly or indirectly, in a computer to perform acertain activity or bring about a certain result. A computer program canbe written in any form of programming language, including compiled orinterpreted languages, and it can be deployed in any form, including asa stand-alone program or as a module, component, subroutine, or otherunit suitable for use in a computing environment.

Suitable processors for the execution of a program of instructionsinclude, by way of example, both general and special purposemicroprocessors, and the sole processor or one of multiple processors ofany kind of computer. Generally, a processor will receive instructionsand data from a read-only memory or a random access memory or both. Theessential elements of a computer are a processor for executinginstructions and one or more memories for storing instructions and data.Generally, a computer will also include, or be operatively coupled tocommunicate with, one or more mass storage devices for storing datafiles; such devices include magnetic disks, such as internal hard disksand removable disks; magneto-optical disks; and optical disks. Storagedevices suitable for tangibly embodying computer program instructionsand data include all forms of non-volatile memory, including by way ofexample semiconductor memory devices, such as EPROM, EEPROM, and flashmemory devices; magnetic disks such as internal hard disks and removabledisks; magneto-optical disks; and CD-ROM and DVD-ROM disks. Theprocessor and the memory can be supplemented by, or incorporated in,ASICs (application-specific integrated circuits).

To provide for interaction with a user, the invention can be implementedon a computer having a display device such as a CRT (cathode ray tube)or LCD (liquid crystal display) monitor for displaying information tothe user and a keyboard and a pointing device such as a mouse or atrackball by which the user can provide input to the computer.

The invention can be implemented in a computer system that includes aback-end component, such as a data server, or that includes a middlewarecomponent, such as an application server or an Internet server, or thatincludes a front-end component, such as a client computer having agraphical user interface or an Internet browser, or any combination ofthem. The components of the system can be connected by any form ormedium of digital data communication such as a communication network.Examples of communication networks include, e.g., a LAN, a WAN, and thecomputers and networks forming the Internet.

The computer system can include clients and servers. A client and serverare generally remote from each other and typically interact through anetwork, such as the described one. The relationship of client andserver arises by virtue of computer programs running on the respectivecomputers and having a client-server relationship to each other.

A number of embodiments of the invention have been described.Nevertheless, it will be understood that various modifications may bemade without departing from the spirit and scope of the invention.Accordingly, other embodiments are within the scope of the followingclaims.

1. A computer-implemented method of using a limit variable in a computersystem, the method comprising: receiving a non-numeric expressionentered by a user to set a limit variable stored in a computer system,which expression signifies to the user that the numerical range isunlimited, wherein the limit variable can only be set with a numericalvalue within a numerical range; converting the non-numeric expression toa first numerical value that is within a predetermined extreme portionof the numerical range; and setting the limit variable with the firstnumerical value.
 2. The method of claim 1, wherein the expression isselected from the group consisting of: a word, a phrase, a symbol, andcombinations thereof.
 3. The method of claim 1, wherein the limitvariable is one selected from the group consisting of: an upper limit ofthe numerical range and a lower limit of the numerical range.
 4. Themethod of claim 1, wherein a data model for the limit variable in thecomputer system provides a highest numerical value with which the limitvariable can be set, and wherein the method further comprises selectingthe predetermined extreme portion of the numerical range based on thehighest numerical value.
 5. The method of claim 1, further comprisingselecting the predetermined extreme portion of the numerical range suchthat, practically, the first numerical value will never be met.
 6. Themethod of claim 1, wherein the numerical range is a date range, thelimit variable is an end date for the date range and the first numericalvalue is a first date, further comprising selecting the predeterminedextreme portion such that, practically, a system date of the computersystem will never reach the predetermined extreme portion of the daterange.
 7. A computer program product tangibly embodied in amachine-readable storage device including executable instructions that,when executed, cause a processor to perform operations comprising:receive a non-numeric expression entered by a user to set a limitvariable stored in a computer system, which expression signifies to theuser that the numerical range is unlimited, wherein the limit variablecan only be set with a numerical value within a numerical range; convertthe non-numeric expression to a first numerical value that is within apredetermined extreme portion of the numerical range; and set the limitvariable with the first numerical value.
 8. The computer program productof claim 7, wherein the expression is selected from the group consistingof: a word, a phrase, a symbol, and combinations thereof.
 9. Thecomputer program product of claim 7, wherein a data model for the limitvariable in a computer system provides a highest numerical value withwhich the limit variable can be set, and wherein the method furthercomprises selecting the predetermined extreme portion of the numericalrange based on the highest numerical value.
 10. The computer programproduct of claim 7, wherein the predetermined extreme portion of thenumerical range is selected such that, practically, the first numericalvalue will never be met.
 11. The computer program product of claim 7,wherein the numerical range is a date range, the limit variable is anend date for the date range and the first numerical value is a firstdate, and wherein the predetermined extreme portion is selected suchthat, practically, a system date of the computer system will never reachthe predetermined extreme portion of the date range.
 12. Acomputer-implemented method of using a limit variable in a computersystem, the method comprising: receiving a command to display a limitvariable for a numerical range, the limit variable being stored in acomputer system and being set with a numerical value within thenumerical range; determining whether the numerical value is withinapredetermined extreme portion of the numerical range; based on adetermination that the numerical value is within the predeterminedextreme portion of the numerical range, converting the numerical valueto a non-numeric expression that signifies to a user that the numericalrange is unlimited and displaying the non-numeric expression to a user;and based on a determination that the numerical value is not within thepredetermined extreme portion of the numerical range, displaying thenumerical value to the user.
 13. The method of claim 12, wherein theexpression is selected from the group consisting of a word, a phrase, asymbol, and combinations thereof.
 14. The method of claim 12, whereinthe limit variable is one selected from the group consisting of: anupper limit of the numerical range and a lower limit of the numericalrange.
 15. The method of claim 12, wherein a data model for the limitvariable in the computer system provides a highest numerical value withwhich the limit variable can be set, further comprising selecting thepredetermined extreme portion of the numerical range based on thehighest numerical value.
 16. The method of claim 12, wherein thenumerical range is a date range, the limit variable is an end date forthe date range and the numerical value is a first date, furthercomprising selecting the predetermined extreme portion such that,practically, a system date of the computer system will never reach thepredetermined extreme portion of the date range.
 17. The method of claim12, wherein the numerical value is within the predetermined extremeportion of the numerical range, and wherein the method furthercomprises, before receiving the command to display the limit variable:receiving the expression, which expression is entered to set the limitvariable; and upon receiving the expression, setting the limit variablewith the numerical value.
 18. A computer program product tangiblyembodied in a machine-readable storage device including executableinstructions that when executed cause a processor to perform operationscomprising: receive a command to display a limit variable for anumerical range, the limit variable being stored in a computer systemand being set with a numerical value within the numerical range;determine whether the numerical value is within a predetermined extremeportion of the numerical range; based on a determination that thenumerical value is within a predetermined extreme portion of thenumerical range, convert the numerical value to a non-numeric expressionthat signifies to a user that the numerical range is unlimited anddisplay the expression to a user; and based on a determination that thenumerical value is not within the predetermined extreme portion of thenumerical range, display the numerical value to the user.
 19. Thecomputer program product of claim 18, wherein the expression is selectedfrom the group consisting of: a word, a phrase, a symbol, andcombinations thereof.
 20. The computer program product of claim 18,wherein the limit variable is one selected from the group consisting of:an upper limit of the numerical range and a lower limit of the numericalrange.
 21. The computer program product of claim 18, wherein a datamodel for the limit variable in the computer system provides a highestnumerical value with which the limit variable can be set, and whereinthe predetermined extreme portion of the numerical range is selectedbased on the highest numerical value.
 22. The computer program productof claim 18, wherein the numerical range is a date range, the limitvariable is an end date for the date range and the numerical value is afirst date, and wherein the predetermined extreme portion is selectedsuch that, practically, a system date of the computer system will neverreach the predetermined extreme portion of the date range.
 23. Thecomputer program product of claim 18, wherein the numerical value iswithin the predetermined extreme portion of the numerical range, andwherein the operations further comprise, before receiving the command todisplay the limit variable: receive the expression, which expression isentered to set the limit variable; and upon receiving the expression,set the limit variable with the numerical value.